package com.yida.system.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.yida.common.core.utils.DateUtils;
import com.yida.common.core.utils.StringUtils;
import com.yida.common.security.utils.SecurityUtils;
import com.yida.system.api.model.LoginUser;
import com.yida.system.domain.SysMenuImg;
import com.yida.system.mapper.SysMenuImgMapper;
import com.yida.system.service.ISysMenuImgService;

/**
 * 菜单图片样式上传页面Service业务层处理
 * 
 * @author hmh
 * @date 2023-05-24
 */
@Service
public class SysMenuImgServiceImpl implements ISysMenuImgService {
    @Autowired
    private SysMenuImgMapper sysMenuImgMapper;

    /**
     * 查询菜单图片样式上传页面
     * 
     * @param imgId 菜单图片样式上传页面主键
     * @return 菜单图片样式上传页面
     */
    @Override
    public SysMenuImg selectSysMenuImgByImgId(Long imgId) {
        return sysMenuImgMapper.selectSysMenuImgByImgId(imgId);
    }

    /**
     * 查询菜单图片样式上传页面列表
     * 
     * @param sysMenuImg 菜单图片样式上传页面
     * @return 菜单图片样式上传页面
     */
    @Override
    public List<SysMenuImg> selectSysMenuImgList(SysMenuImg sysMenuImg) {
        return sysMenuImgMapper.selectSysMenuImgList(sysMenuImg);
    }

    /**
     * 新增菜单图片样式上传页面
     * 
     * @param sysMenuImg 菜单图片样式上传页面
     * @return 结果
     */
    @Override
    public int insertSysMenuImg(SysMenuImg sysMenuImg) {
        sysMenuImg.setCreateBy(SecurityUtils.getLoginUser().getUsername());
        sysMenuImg.setCreateTime(DateUtils.getNowDate());
        return sysMenuImgMapper.insertSysMenuImg(sysMenuImg);
    }

    /**
     * 修改菜单图片样式上传页面
     * 
     * @param sysMenuImg 菜单图片样式上传页面
     * @return 结果
     */
    @Override
    public int updateSysMenuImg(SysMenuImg sysMenuImg) {
        sysMenuImg.setCreateBy(SecurityUtils.getLoginUser().getUsername());
        sysMenuImg.setUpdateTime(DateUtils.getNowDate());
        return sysMenuImgMapper.updateSysMenuImg(sysMenuImg);
    }

    /**
     * 批量删除菜单图片样式上传页面
     * 
     * @param imgIds 需要删除的菜单图片样式上传页面主键
     * @return 结果
     */
    @Override
    public int deleteSysMenuImgByImgIds(Long[] imgIds) {
        return sysMenuImgMapper.deleteSysMenuImgByImgIds(imgIds);
    }

    /**
     * 删除菜单图片样式上传页面信息
     * 
     * @param imgId 菜单图片样式上传页面主键
     * @return 结果
     */
    @Override
    public int deleteSysMenuImgByImgId(Long imgId) {
        return sysMenuImgMapper.deleteSysMenuImgByImgId(imgId);
    }

    /* 
     *  
     */
    @Override
    public boolean updateMenuImg(Long menuId, String url) {
        LoginUser loginUser = SecurityUtils.getLoginUser();
        // 判定是否存在数据
        SysMenuImg sysMenuImg = selectSysMenuImgByMenuId(menuId);
        if (StringUtils.isNull(sysMenuImg)) {
            sysMenuImg = new SysMenuImg();
            sysMenuImg.setCreateBy(loginUser.getUsername());
            sysMenuImg.setImgUrl(url);
            sysMenuImg.setMenuId(menuId);
            sysMenuImg.setStatus(0);
            return insertSysMenuImg(sysMenuImg) > 0;
        }
        sysMenuImg.setCreateBy(loginUser.getUsername());
        sysMenuImg.setImgUrl(url);
        return updateSysMenuImgByMenuId(sysMenuImg) > 0;
    }

    // -----------------------新增功能区------------------------------

    @Override
    public SysMenuImg selectSysMenuImgByMenuId(Long menuId) {
        return sysMenuImgMapper.selectSysMenuImgByMenuId(menuId);
    }

    /**
     * 修改菜单图片样式上传页面
     * 
     * @param sysMenuImg 菜单图片样式上传页面
     * @return 结果
     */
    @Override
    public int updateSysMenuImgByMenuId(SysMenuImg sysMenuImg) {
        sysMenuImg.setCreateBy(SecurityUtils.getLoginUser().getUsername());
        sysMenuImg.setUpdateTime(DateUtils.getNowDate());
        return sysMenuImgMapper.updateSysMenuImg(sysMenuImg);
    }

    /* 
     * 变更图片状态
     */
    @Override
    public boolean changeSysMenuImgStatus(SysMenuImg sysMenuImg) {
        sysMenuImg.setCreateBy(SecurityUtils.getLoginUser().getUsername());
        sysMenuImg.setUpdateTime(DateUtils.getNowDate());
        return sysMenuImgMapper.updateSysMenuImgByMenuId(sysMenuImg) > 0;
    }
}
